home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / esc.jar / com / extensibility / xml / BaseExemplar$ElemProxy.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-06-30  |  4.6 KB  |  142 lines

  1. package com.extensibility.xml;
  2.  
  3. import java.util.Enumeration;
  4.  
  5. public class BaseExemplar$ElemProxy extends BaseExemplar.DeclProxy {
  6.    // $FF: synthetic field
  7.    final BaseExemplar this$0;
  8.    ElementDeclaration decl;
  9.    BaseExemplar.AttrProxy attrProxy;
  10.  
  11.    BaseExemplar$ElemProxy(BaseExemplar var1) {
  12.       super((BaseExemplar)null);
  13.       this.this$0 = var1;
  14.       this.attrProxy = new BaseExemplar.AttrProxy(this.this$0);
  15.    }
  16.  
  17.    BaseExemplar$ElemProxy(BaseExemplar var1, ElementDeclaration var2) {
  18.       super((BaseExemplar)null);
  19.       this.this$0 = var1;
  20.       this.attrProxy = new BaseExemplar.AttrProxy(this.this$0);
  21.       this.setDecl(var2);
  22.    }
  23.  
  24.    void setDecl(ElementDeclaration var1) {
  25.       this.decl = var1;
  26.       super.setDecl(var1);
  27.    }
  28.  
  29.    void write(SXE var1, boolean var2) {
  30.       this.write(var1, var2, "");
  31.    }
  32.  
  33.    void write(SXE var1, boolean var2, String var3) {
  34.       if (this.decl != null) {
  35.          boolean var4 = var1.isOpenTag(this.decl.getName());
  36.          if (var2) {
  37.             ((BaseExemplar.DeclProxy)this).writeComments(var1);
  38.          }
  39.  
  40.          var1.writeElem(this.decl.getName(), -1);
  41.          this.this$0.writeDeclNameSpace(var1, this.decl);
  42.          ContentModel var5 = this.decl.getContentModel();
  43.          Enumeration var6 = this.decl.getAttributes(true);
  44.  
  45.          while(var6.hasMoreElements()) {
  46.             AttributeGroupMember var7 = (AttributeGroupMember)var6.nextElement();
  47.             this.attrProxy.setDecl((AttributeDeclaration)var7);
  48.             this.attrProxy.write(var1);
  49.          }
  50.  
  51.          if (var4) {
  52.             this.decl.setSampleData((String)null);
  53.          } else {
  54.             String var11 = this.decl.getSampleData();
  55.             if (var11 != null) {
  56.                var1.writeText(var11);
  57.             }
  58.  
  59.             if (var5.isTagsOnly()) {
  60.                var1.writeComment(this.this$0.schema.getContentModelAsString(this.decl), false);
  61.                this.writeTagsOnly(var1);
  62.             } else if (var5.isMixed()) {
  63.                var1.writeComment(var5.getSource(false));
  64.                ContentModelTermEnum var8 = this.decl.getLeafTerms();
  65.  
  66.                while(var8.hasMoreElements()) {
  67.                   ContentModelTerm var9 = var8.nextContentModelTerm();
  68.                   CMTReferent var10 = var9.getReferent();
  69.                   if (var10 instanceof ElementDeclaration) {
  70.                      (new BaseExemplar$ElemProxy(this.this$0, (ElementDeclaration)var10)).write(var1, true);
  71.                   }
  72.                }
  73.             }
  74.  
  75.             var1.flush(this.decl.getName());
  76.          }
  77.       }
  78.    }
  79.  
  80.    void getDataDecls() {
  81.       if (this.decl != null) {
  82.          if (!this.this$0.declsFound.contains(this.decl)) {
  83.             this.this$0.declsToFill.addElement(this.decl);
  84.             this.this$0.declsFound.put(this.decl.getName(), this.decl);
  85.             ContentModel var1 = this.decl.getContentModel();
  86.             Enumeration var2 = this.decl.getAttributes(true);
  87.  
  88.             while(var2.hasMoreElements()) {
  89.                AttributeGroupMember var3 = (AttributeGroupMember)var2.nextElement();
  90.                this.attrProxy.setDecl((AttributeDeclaration)var3);
  91.                this.attrProxy.getDataDecls();
  92.             }
  93.  
  94.             if (var1.isTagsOnly()) {
  95.                this.getDataDeclsForTagsOnly(var1);
  96.             } else if (var1.isMixed()) {
  97.                ContentModelTermEnum var6 = this.decl.getLeafTerms();
  98.  
  99.                while(var6.hasMoreElements()) {
  100.                   ContentModelTerm var4 = var6.nextContentModelTerm();
  101.                   CMTReferent var5 = var4.getReferent();
  102.                   if (var5 instanceof ElementDeclaration) {
  103.                      (new BaseExemplar$ElemProxy(this.this$0, (ElementDeclaration)var5)).getDataDecls();
  104.                   }
  105.                }
  106.             }
  107.  
  108.          }
  109.       }
  110.    }
  111.  
  112.    void writeTagsOnly(SXE var1) {
  113.       ContentModel var2 = this.decl.getContentModel();
  114.       if (((ContentModelTerm)var2).isGroup() && ((ContentModelTerm)var2).getChildConnection() == '|') {
  115.       }
  116.  
  117.       ContentModelTermEnum var3 = this.decl.getLeafTerms();
  118.  
  119.       while(var3.hasMoreElements()) {
  120.          ContentModelTerm var4 = var3.nextContentModelTerm();
  121.          CMTReferent var5 = var4.getReferent();
  122.          if (var5 instanceof ElementDeclaration) {
  123.             (new BaseExemplar$ElemProxy(this.this$0, (ElementDeclaration)var5)).write(var1, true, var4.getOccuranceAsString(this.this$0.schema.isSupported("GESTALT_KLEENE_OCCURS"), this.this$0.schema.isSupported("GESTALT_MIN_MAX_OCCURS")));
  124.          }
  125.       }
  126.  
  127.    }
  128.  
  129.    void getDataDeclsForTagsOnly(ContentModelTerm var1) {
  130.       ContentModelTermEnum var2 = var1.getLeafTerms();
  131.  
  132.       while(var2.hasMoreElements()) {
  133.          ContentModelTerm var3 = var2.nextContentModelTerm();
  134.          CMTReferent var4 = var3.getReferent();
  135.          if (var4 instanceof ElementDeclaration) {
  136.             (new BaseExemplar$ElemProxy(this.this$0, (ElementDeclaration)var4)).getDataDecls();
  137.          }
  138.       }
  139.  
  140.    }
  141. }
  142.